"""
LLM4CP主程序文件
程序入口点，设置环境并启动训练
"""

import torch
import numpy as np
import os

from config import SimpleLLM4CPConfig
from trainer import SimpleLLM4CPTrainer


def setup_environment():
    """设置运行环境"""
    # 设置离线模式
    os.environ['HF_DATASETS_OFFLINE'] = '1'
    os.environ['TRANSFORMERS_OFFLINE'] = '1'
    
    # 设置随机种子
    torch.manual_seed(42)
    np.random.seed(42)
    
    print("🚀 启动简化LLM4CP真实数据训练器")


def main():
    """主函数"""
    print("🚀 启动简化LLM4CP真实数据训练器")
    print("="*70)
    
    # 设置环境
    setup_environment()
    
    try:
        # 创建配置和训练器
        config = SimpleLLM4CPConfig()
        trainer = SimpleLLM4CPTrainer(config)
        
        # 开始训练
        model, spatial_reconstructor = trainer.train()
        
        print("\n🎉 简化LLM4CP训练成功完成!")
        print(f"🏆 最终空间RMSE: {trainer.best_spatial_rmse:.6f}")
        print(f"📊 核心成果: 简化LLM4CP + 真实空间相关性数据")
        print(f"🔬 模型框架: Transformer-based LLM4CP")
        
        # 结果分析
        if hasattr(trainer, 'best_spatial_rmse') and trainer.best_spatial_rmse != float('inf'):
            print(f"\n📈 简化LLM4CP训练结果分析:")
            print(f"   最佳空间RMSE: {trainer.best_spatial_rmse:.6f}")
            print(f"   使用LLM4CP架构: ✅")
            print(f"   使用真实数据: ✅")
            print(f"   使用phasecha矩阵: ✅")
            print(f"   MATLAB风格计算: ✅")
            print(f"   避免GPT2下载: ✅")
            
    except Exception as e:
        print(f"❌ 简化LLM4CP训练过程中出现错误: {e}")
        import traceback
        traceback.print_exc()


if __name__ == "__main__":
    main() 